package com.infolab.aims.common.bean;

import java.io.Serializable;
import java.util.List;

public class SearchResult implements Serializable {
	
	private SearchCriteria searchCriteria;
	private String[] page;
	private Integer recordNo;
	private Integer maxPage;
	private Integer resultCount;
	private List result;

	public SearchCriteria getSearchCriteria() {
		return searchCriteria;
	}

	public void setSearchCriteria(SearchCriteria searchCriteria) {
		this.searchCriteria = searchCriteria;
	}

	public List getResult() {
		return result;
	}

	public void setResult(List result) {
		this.result = result;
	}

	public String[] getPage() {
		int iMaxPage = getMaxPage();
		int iCurPage = getCurPage();
		String tmp[];
		if(iMaxPage<=10)
		{
			tmp = new String[iMaxPage];
			for(int i=0;i<iMaxPage;i++)
			{
				tmp[i]=String.valueOf(i+1);
			}
		}
		else
		{
			if(iCurPage-5<=0)
			{
				tmp = new String[10];
				for(int i=0;i<10;i++)
				{
					tmp[i]=String.valueOf(i+1);
				}
				
			}
			else
			{
				int startPage = iCurPage-5;
				int tMaxPage = startPage+10;
				if(tMaxPage>iMaxPage)
				{
					tmp = new String[10];
					startPage = iMaxPage - 9;
					for(int i=0;i<tmp.length;i++)
					{
						tmp[i]=String.valueOf(startPage);
						startPage++;
					}
				}
				else
				{
					tmp = new String[10];
					for(int i=0;i<tmp.length;i++)
					{
						tmp[i]=String.valueOf(startPage);
						startPage++;
					}
				}
			}
		}
		return tmp;
	}

	public void setPage(String[] page) {
		this.page = page;
	}

	public Integer getMaxPage() {
		if(maxPage==null) return 1;
		return maxPage;
	}
	
	public Integer getCurPage() {
		if(getSearchCriteria().getCurPage()==null) return 1;
		return getSearchCriteria().getCurPage();
	}

	public void setMaxPage(Integer maxPage) {
		this.maxPage = maxPage;
	}

	public boolean isFirstPage() {
		return getCurPage().intValue()==1?true:false;
		
	}


	public boolean isLastPage() {
		return getCurPage().intValue()==getMaxPage().intValue()?true:false;
	}

	public Integer getResultCount() {
		return resultCount;
	}

	public void setResultCount(Integer resultCount) {
		this.resultCount = resultCount;
	}

	public Integer getRecordNo() {
		return recordNo;
	}

	public void setRecordNo(Integer recordNo) {
		this.recordNo = recordNo;
	}

	
	
}
